/*
 * FuncionesArchConfig.c
 *
 *  Created on: 25/09/2011
 *      Author: sk8julian
 */

 #include "./includes/FuncionesArchConfig.h"
#include "./includes/variablesGlobales.h"





 int buscaPalabraEnArchivoConfig(int *variableGlobal, char *palabraABuscar)
{
	 int tamanioArchivo;
	FILE *punteroDelArchivo;
	char *punteroContenidoArchivo;
	char *contenidoArchivo2;
	 int *variableAuxiliar;
	char bufferLog[100];

	variableAuxiliar=variableGlobal;
	punteroDelArchivo = fopen("../configRAID.txt","r+");

	memset(bufferLog,'\0',sizeof(bufferLog));
	if (!punteroDelArchivo)
		{
		sprintf(bufferLog,"No se pudo abrir el archivo de configuracion\n");
		printf("%s\n",bufferLog);
		fclose(punteroDelArchivo);
		return 0;
		}
	else
		{
		fseek(punteroDelArchivo, 0, SEEK_END);
		tamanioArchivo = ftell(punteroDelArchivo);
		contenidoArchivo2 =(char *)calloc(1,(tamanioArchivo+1)*sizeof(char));
		rewind(punteroDelArchivo);

		if(fread(contenidoArchivo2,sizeof(char),tamanioArchivo+1,punteroDelArchivo))
			{
			contenidoArchivo2[tamanioArchivo]='\0';
			punteroContenidoArchivo =strstr(contenidoArchivo2,palabraABuscar);

			if(!punteroContenidoArchivo)
				{
				sprintf(bufferLog,"No se encontro la variable global en el archivo de configuracion\n");
				printf("%s\n",bufferLog);
				free(contenidoArchivo2);
				fclose(punteroDelArchivo);
				return 0;
				}
			else
				{
				punteroContenidoArchivo = strtok(punteroContenidoArchivo,"=");
				punteroContenidoArchivo = strtok(NULL," ");
				*variableAuxiliar=atoi(punteroContenidoArchivo);
				sprintf(bufferLog,"Se asigno a %s, el valor %d\n",palabraABuscar,atoi(punteroContenidoArchivo));
				printf("%s\n",bufferLog);
				}
			}
		else
			{
			printf("Error al leer el archivo de configuracion\n");
			free(contenidoArchivo2);
			fclose(punteroDelArchivo);
			return 0;
			}
		}
	free(contenidoArchivo2);
	fclose(punteroDelArchivo);
return 1;
}

//Esta no la uso por que no levanto ningun ip , por lo menos no dice en el tp , despues si se usa , la arreglo.

//  int buscaStringEnArchivoConfig(char *palabraABuscar)
// {
// 	 int tamanioArchivo;
// 	FILE *punteroDelArchivo;
// 	char *punteroContenidoArchivo=NULL;
// 	char *variableAuxiliar=NULL;
// 	char *contenidoDelArchivo=NULL;
// 	char bufferLog[100];
//
// 	punteroDelArchivo = fopen("configRaid.txt","r+");
// 	memset(bufferLog,'\0',sizeof(bufferLog));
//
// 	if (!punteroDelArchivo)
// 		{
// 		sprintf(bufferLog,"Error al abrir el archivo para leer\n");
// 		printf("%s\n",bufferLog);
// 		fclose(punteroDelArchivo);
// 		return 0;
// 		}
// 	else
// 		{
// 		fseek(punteroDelArchivo, 0, SEEK_END);
// 		tamanioArchivo = ftell(punteroDelArchivo);
// 		contenidoDelArchivo =(char *)calloc(1,(tamanioArchivo+1)*sizeof(char));
// 		rewind(punteroDelArchivo);
//
// 		if(fread(contenidoDelArchivo,sizeof(char),(tamanioArchivo+1),punteroDelArchivo))
// 			{
// 			contenidoDelArchivo[tamanioArchivo]='\0';
// 			punteroContenidoArchivo =strstr(contenidoDelArchivo,palabraABuscar);
//
// 			if(!punteroContenidoArchivo)
// 				{
// 				sprintf(bufferLog,"No se encontro la variable global en el archivo de configuracion\n");
// 				printf("%s\n",bufferLog);
// 				free(contenidoDelArchivo);
// 				fclose(punteroDelArchivo);
// 				return 0;
// 				}
// 			else
// 				{
// 				punteroContenidoArchivo = strtok(punteroContenidoArchivo,"=");
// 				punteroContenidoArchivo = strtok(NULL,";");
// 				variableAuxiliar=punteroContenidoArchivo;
//
// 				//Aca se rellenan las variables que se leen del archivo
//
//
// 				memset(direccionIPRaid,'\0',sizeof(direccionIPRaid));
// 				strcpy(direccionIPRaid,variableAuxiliar);
// 				sprintf(bufferLog,"Se asigno a %s, el valor %s",palabraABuscar,direccionIPRaid);
// 				printf("%s\n",bufferLog);
// 				free(contenidoDelArchivo);
// 				}
// 			}
// 		else
// 			{
// 			printf("Error al leer el archivo de configuracion\n");
// 			fclose(punteroDelArchivo);
// 			free(contenidoDelArchivo);
// 			return 0;
// 			}
// 		}
// 	fclose(punteroDelArchivo);
// return 1;
// }



   int cargarArchivoDeConfiguracion()
  {


  	if(buscaPalabraEnArchivoConfig(&flagConsola,"Flag de la consola")
  	&& buscaPalabraEnArchivoConfig(&PuertoDelRAID,"Puerto del RAID")
  			)
  		{
  		printf("Finalizo correctamente el proceso del archivo de configuracion\n");

  		}
  	else
  		{
  		printf("El proceso del archivo de configuracion finalizo de forma inesperada\n");

  		return 0;
  		}
  return 1;
  }

